package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.OcorrenciaDao;
import br.com.speedprevweb.dao.impl.OcorrenciaDaoImpl;
import br.com.speedprevweb.model.Ocorrencia;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "ocorrenciaBean")
@SessionScoped
public class OcorrenciaBean implements Serializable {

  private Ocorrencia ocorrencia = new Ocorrencia();
  private List<Ocorrencia> ocorrencias = new ArrayList();

  public OcorrenciaBean() {
    ocorrencias = new OcorrenciaDaoImpl().listarTodos();
    ocorrencia = new Ocorrencia();
  }
    
  public Ocorrencia getOcorrencia() {
    return ocorrencia;
  }

  public void setOcorrencia(Ocorrencia ocorrencia) {
    this.ocorrencia = ocorrencia;
  }

  public List<Ocorrencia> getOcorrencias() {
    return ocorrencias;
  }

  public void setOcorrencias(List<Ocorrencia> ocorrencias) {
    this.ocorrencias = ocorrencias;
  }

  public String descricaoOcorrencia() {
    return this.ocorrencia.getDsOcorrencia();
  }

  public String incluirOcorrencia() {
    ocorrencia = new Ocorrencia();
    return "OcorrenciaDetalhe";
  }

  public String preparaAlterarOcorrencia() {
    return "OcorrenciaDetalhe";
  }

  public String excluirOcorrencia() {
    OcorrenciaDao tpOcorrenciaDao = new OcorrenciaDaoImpl();
    tpOcorrenciaDao.excluir(ocorrencia);
    ocorrencias = new OcorrenciaDaoImpl().listarTodos();
    ocorrencia = new Ocorrencia();
    return "/cadastros/Ocorrencia";
  }

  public String salvar() {
    if (ocorrencia.getIdOcorrencia()== 0) {
      incluir();
    } else {
      alterar();
    }
    return "/cadastros/Ocorrencia";
  }

  public void incluir() {
    OcorrenciaDao tpOcorrenciaDao = new OcorrenciaDaoImpl();
    tpOcorrenciaDao.salvar(this.ocorrencia);
    ocorrencias = new OcorrenciaDaoImpl().listarTodos();
    ocorrencia = new Ocorrencia();
  }

  public void alterar() {
    OcorrenciaDao tpOcorrenciaDao = new OcorrenciaDaoImpl();
    tpOcorrenciaDao.alterar(ocorrencia);
  }

  public String cancelar() {
    return "/cadastros/Ocorrencia";
  }

  private void atualizarDataTable() {
    ocorrencias = new OcorrenciaDaoImpl().listarTodos();
    ocorrencia = new Ocorrencia();
  }

  public int totalRegistros() {
    return ocorrencias.size();
  }
}